'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
# 作者：cacho_37967865
# 博客：https://blog.csdn.net/sinat_37967865
# 文件：python_datetime.py
# 日期：2018-04-29
# 备注：整理python中时间相关函数，导入内置datetime模块  
    datetime.date：表示日期的类  2019-10-03 
    datetime.timedelta：表示时间间隔，即两个时间点的间隔
    datetime.datetime：表示日期时间的类 
    datetime.time：表示时间的类
    datetime.tzinfo：时区的相关信息
    strftime()：由日期格式转化为字符串格式
    strptime():由字符串格式转化为日期格式
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

from datetime import datetime
from datetime import date
from datetime import timedelta



timestamp = 1597627468000       # 10位 1571885904148

time_stamp = int (timestamp* (10 ** (10-len(str(timestamp)))))   # 13位转10位
print(time_stamp)


dt_date = date.today()
print('周几,从0开始到6 ',dt_date.weekday())         #
# datetime.date类型
print(type(dt_date),'datetime.date类型 YYYY-MM-DD：',dt_date)
type_date = date.fromtimestamp(time_stamp)                                # 传入时间戳返回日期
print(type(type_date),'datetime.date类型 YYYY-MM-DD：',type_date)
dt_date = date(2019, 9, 24)
print(type(dt_date),dt_date,'\n')


# datetime.date类型其他
print(type(dt_date.isoweekday()),'返回符合ISO标准的指定日期所在的星期数周一为1：',dt_date.isoweekday())
print(type(dt_date.weekday()),'返回的周一为0, 周日为6：',dt_date.weekday(),'\n')

# datetime.datetime类型
print(type(datetime.now()),'datetime.datetime类型：',datetime.now())
print(type(datetime.utcnow()),'datetime.datetime类型：',datetime.utcnow())

# float时间戳转换为datetime.datetime
CST_time = datetime.fromtimestamp(time_stamp)
print(type(CST_time),"时间戳转换为datetime.datetime：",CST_time)        # 北京时间   北京时间=协调世界时+8
UTC_time = datetime.utcfromtimestamp(time_stamp)
print(type(UTC_time),"时间戳转换为datetime.datetime：",UTC_time,'\n')   # 协调世界时（UTC）


# datetime.datetime时间类型转换为字符串
dt = datetime.now()
print('字符串完整格式：',dt.strftime('%Y-%m-%d %H:%M:%S %f'))
print('字符串精确到秒：',dt.strftime('%Y-%m-%d %H:%M:%S'))
print("字符串201804292359类型：",dt.strftime('%Y%m%d%H%M'))
print("字符串20180429235923类型：",dt.strftime('%Y%m%d%H%M%S'),'\n')


# datetime.datetime转换为time类型
print(type(dt.timetuple()),"时间元组类型time.struct_time：",dt.timetuple(),'\n')

# 字符串转换为datetime.datetime
date_string1 = '2019-04-27 14:25:34'
date_string2 = '2019-08-22 11:20:25'
date_time = datetime.strptime(dt.strftime('%Y%m%d%H%M%S'), '%Y%m%d%H%M%S')
date_time1 = datetime.strptime(date_string1, "%Y-%m-%d %H:%M:%S")
print(type(date_time),'字符串类型转换为datetime.datetime：',date_time,)
print(type(date_time1),'字符串类型转换为datetime.datetime：',date_time1,'\n')


# datetime.timedelta格式
date_time2 = datetime.strptime(date_string2, "%Y-%m-%d %H:%M:%S")
date_minus = date_time2 - date_time1
print(type(date_minus),'时间相减datetime.timedelta：',date_minus)


# datetime.timedelta格式 datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
delta_day = timedelta(days=1)
print(type(delta_day),delta_day)
add_date = dt + delta_day
minus_date = dt - delta_day
print(type(add_date),add_date,minus_date)

# 获取年月日
c_year = dt.year
c_month = dt.month
c_day = dt.day
print(type(c_year),c_year,c_month,c_day)







